Floris Bruynooghe - Build your Microservices with ZeroMQ
[21 July 2016 / 2016-07-21]
[Bilbao, Euskadi, Spain]
While microservices are rather commonly implemented using JSON over
HTTP this is merely an implementation choice. This talk will cover
the reasons why you might want to choose ZeroMQ as communication
transport between your microservices instead. It will show how ZeroMQ
is used from within Python and the common patterns which can simplify
the overal architecture while at the same time providing reliable and
low-latency communications between your services.
Microservices is the popular term for the trend to build backend
architectures as a number of smaller independent processes. As an
evolution from the Service Oriented Architecture the core aims are to
create independent services which are easy to operate and even replace
while all of them together compose into providing the business logic
required for your application.
While it is rather common for microservices to choose JSON over HTTP
to communicate with each other, this is purely an implementation
choice. HTTP is a protocol using a strict request-response format,
this can become a little burdensome when needing to deal with
asynchronous requests and forces some architectural descisions to be
not as ideal as they could be. ZeroMQ has more flexible communication
patterns allowing for easier mapping of real-life interactions between
services. Coupled with an easy to use asynchronous user-level API and
very fast underlying communication on persistent TCP connections
ZeroMQ is a rather attractive transport to build your microservices
based applications in.
This talk will show how to use ZeroMQ within Python to build your
microservices. It will show the benefits of ZeroMQ's asynchronous
API, common usage patterns and how to handle backpressure.
Furthermore different communication patterns will be explored and the
impact this has on how to simplify the overall architecture using